Method and apparatus for powered descent guidance

ABSTRACT

A method and apparatus for landing a spacecraft having thrusters with non-convex constraints is described. The method first computes a solution to a minimum error landing problem for a convexified constraints, then applies that solution to a minimum fuel landing problem for convexified constraints. The result is a solution that is a minimum error and minimum fuel solution that is also a feasible solution to the analogous system with non-convex thruster constraints.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit of the following U.S. Provisional Patent Applications, each of which is incorporated by reference herein:

U.S. Provisional Patent Application No. 61/201,866, entitled “MINIMUM LANDING ERROR POWERED DESCENT GUIDANCE FOR PLANETARY MISSIONS,” by James C. Blackmore and Behcet Acikmese, filed Dec. 16, 2008;

U.S. Provisional Patent Application No. 61/164,338, entitled “MINIMUM LANDING ERROR POWERED DESCENT GUIDANCE FOR PLANETARY MISSIONS,” by Daniel P. Scharf, James C. Blackmore and Behcet Acikmese, filed Mar. 27, 2009;

U.S. Provisional Patent Application No. 61/183,508, entitled “A TABLE LOOKUP SOLUTION ALGORITHM OF THE OPTIMAL POWERED DESCENT GUIDANCE PROBLEM FOR PLANETARY LANDING,” by James C. Blackmore, and Behcet Acikmese, filed Jun. 2, 2009; and

U.S. Provisional Patent Application No. 61/286,095, entitled “MINIMUM LANDING ERROR POWERED DESCENT GUIDANCE FOR MARS LANDING USING CONVEX OPTIMIZATION,” by James C. Blackmore, Behcet Acikmese, and Daniel P. Scharf, filed Dec. 14, 2009.

STATEMENT OF RIGHTS OWNED

The invention described herein was made in the performance of work under a NASA contract, and is subject to the provisions of Public Law 96-517 (35 U.S.C. §202) in which the Contractor has elected to retain title.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to systems and methods for guiding spacecraft, and in particular to a system and method for guiding a spacecraft to a soft landing on a planetary surface.

2. Description of the Related Art

To increase the science return of future missions to Mars, and to enable sample return missions, the accuracy with which a lander can be delivered to the Martian surface must be improved by orders of magnitude over the current capabilities. Towards this goal, our prior work developed a convex optimization based minimum-fuel powered descent guidance algorithm. Here, we extend this approach to handle the case when no feasible trajectory to the target exists. In this case, our objective is to generate the minimum landing error trajectory, which is the trajectory that minimizes the distance to the prescribed target while utilizing the available fuel optimally. This problem is inherently a non-convex optimal control problem due to a nonzero lower bound on the magnitude of the feasible thrust vector. We first prove that an optimal solution of a convex relaxation of the optimal control problem is also optimal for the original non-convex problem, which we refer to as the lossless convexification of the original non-convex problem. Then we show that the minimum landing error trajectory generation problem can be posed as a convex optimization problem, in particular as a Second-Order Cone Program, and solved to global optimality with deterministic convergence. This makes the approach amenable to onboard implementation for real-time applications.

SUMMARY OF THE INVENTION

To address the requirements described above, the present invention discloses a method and apparatus for computing a thrust profile to land a spacecraft at or near a surface target, wherein the spacecraft is subject to a non-convex thrust constraint. In one embodiment, the method comprises the steps of computing a minimum landing error descent solution for the spacecraft subject to a convexified non-convex constraint, wherein the descent solution includes a landing error, and determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution for the spacecraft subject to the convexified non-convex constraint, and commanding the spacecraft thrusters according to the thrust profile. In a further embodiment, the step of determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution for the spacecraft subject to the convexified non-convex constraint comprises the steps of computing a minimum fuel descent solution for the spacecraft subject to the convexified non-convex constraint and the landing error, and determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum fuel descent solution for the spacecraft subject to the convexified non-convex constraint.

In a still further embodiment, the apparatus comprises a processor for computing a minimum landing error descent solution, comprising a memory for storing instructions including instructions for computing a minimum landing error descent solution for the spacecraft subject to a convexified non-convex constraint, wherein the descent solution includes a landing error, and for determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution for the spacecraft subject to the convexified non-convex constraint, and for commanding the spacecraft thrusters according to the thrust profile. The apparatus further comprises thrusters for applying the commanded thrust to the spacecraft.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers represent corresponding parts throughout:

FIG. 1 is a diagram illustrating glideslope constraints for a minimum landing error powered descent. The glideslope constraint requires the spacecraft to remain in a cone defined by a minimum slope angle α. In a minimum landing error case, the apex of the cone coincides with the landed position of the spacecraft, rather than the original target.

FIG. 2 is a three dimensional plot of an optimal trajectory generated using a minimum landing error targeting approach for Case 1, with r₀=[1500 0 2000,]^(T), {dot over (r)}₀=[75 0 100]^(T) (units in meters and meters/second, respectively). In this case, a feasible solution exists, so the prioritized minimum landing error algorithm returns the minimum fuel solution to the target.

FIGS. 3A-3H are diagrams presenting the result of the minimum landing error targeting approach for the initial conditions described with respect to FIG. 2.

FIG. 4 is a three dimensional plot of an optimal trajectory using a minimum landing error targeting approach for Case 2 with r₀=[1500 0 2000,]^(T), {dot over (r)}₀=[−75 40 100]^(T) (units in meters and meters/second, respectively). In this case, no feasible solution to the target exists, so the minimum landing error solution approach returns the solution that minimizes the final distance to the target, which is 268 meters.

FIGS. 5A-5H are diagrams presenting the result of the minimum landing error targeting approach for the initial conditions described with respect to FIG. 4.

FIG. 6 is a diagram illustrating the dependence of minimum distance from the target on time of flight for a typical set of initial conditions. The relationship is unimodal and has an optimum at 56.35 seconds. The Golden Search determines the optimum to be 55.83 seconds, which is an error of only 0.9%.

FIG. 7 is a diagram presenting illustrative method steps that can be used to command the thrusters to land the spacecraft.

FIG. 8 is a diagram presenting exemplary method steps that can be used to determine the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution for the spacecraft subject to the convexified non-convex constraint.

FIG. 9 is a diagram of an exemplary spacecraft.

FIG. 10 is a diagram depicting the functional architecture of a representative spacecraft guidance and control system.

FIG. 11 is a diagram depicting an exemplary computer system that could be used to implement elements of the present invention at a ground station.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, reference is made to the accompanying drawings which form a part hereof, and which is shown, by way of illustration, several embodiments of the present invention. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.

I. Introduction

(Note: This application references a number of different publications as indicated throughout the specification by reference numbers enclosed in brackets, e.g., [x] or the words “Ref.” or “Refs.”. A list of these different publications ordered according to these reference numbers can be found below in the section entitled “References.” Each of these publications is incorporated by reference herein.)

The science return of previous missions to the surface of Mars has been limited by the accuracy with which a lander can be delivered to the surface. Landing accuracy is characterized by the 3-sigma landing ellipse, which defines the region around the target in which landing can be guaranteed. The size of this ellipse (major axis) was approximately 150 km for Mars Pathfinder and 35 km for the Mars Exploration Rovers. The 2009 Mars Science Laboratory mission aims to achieve a landing ellipse of around 10 km. This means that landing site selection is driven by the need to find a safe landing site, rather than by science goals. In other words, landing sites must be large, flat, and relatively rock- and crater-free areas to ensure safe landing. These regions are usually not the sites with the maximum science return. For example, in the recent Phoenix mission, orbital images taken months before the landing showed a higher-than-expected concentration of large rocks at the primary landing site. This required a switch to an alternate landing site, which may not have been necessary if a more accurate landing were possible.

Accurate landing is also an enabling technology for Mars sample return missions. One concept for such a mission would involve a first spacecraft gathering samples, with a second spacecraft arriving at Mars later to return the sample to Earth. For this to be possible, the second spacecraft has to land close to the first in order to enable transfer of the sample without prohibitively high power and mobility requirements. Achieving this with a sufficiently low level of risk to the mission will require dramatic improvements in landing accuracy.

Recent work has focused on achieving pinpoint landing, which is defined as landing to within hundreds of meters of a target. The pinpoint landing concept consists of an entry phase through the Martian atmosphere, during which bank angle control is used to target the spacecraft, followed by parachute deployment. During the parachute phase, errors accumulate due to winds and atmospheric uncertainty. Once the parachute is released, the final powered descent phase then uses thrusters to land safely at the target. To do so, the lander needs to calculate onboard a trajectory from its a priori unknown location at parachute cutoff to the target. This powered descent guidance (PDG) problem is challenging for a number of reasons. First, we must guarantee that any feasible solution obeys hard constraints, including minimum and maximum thrust magnitudes and a minimum glideslope angle. The latter constraint also prevents subsurface flight. Second, we must guarantee that a feasible solution will be found in a matter of seconds. This requirement is derived from the duration of the parachute and PDG phases; if the PDG algorithm takes too long to find a feasible solution, the lander can crash into the surface. Third, to both maximize the distance from which the lander can reach the target and minimize the amount of fuel that must be carried onboard, the algorithm should find the globally optimal solution.

A great deal of prior work has developed approximate solutions to the powered descent guidance problem Ref. 3, and Refs. 6-12. The convex optimization approach poses the problem of minimum-fuel powered descent guidance as a Second-Order Cone Program (SOCP). This optimization problem can be solved in polynomial time using existing algorithms that have a deterministic stopping criterion given a prescribed level of accuracy. That is, the global optimum can be computed to any given accuracy with a deterministic upper bound on the number of iterations required for convergence. This is in contrast with other approaches that either compute a closed-form solution by ignoring the constraints of the problem, propose solving a nonlinear optimization onboard, or solve a related problem that does not minimize fuel use. The closed-form solution approach results in solutions that do not obey the constraints inherent in the problem, such as no subsurface flight constraints; in practice this reduces the size of the region from which return to the target is possible by a factor of ten or more.

Nonlinear optimization approaches, on the other hand, cannot provide deterministic guarantees on how many iterations will be required to find a feasible trajectory, and are not guaranteed to find the global optimum. This limits their relevance to onboard applications. For more extensive comparisons of the convex optimization approach to alternative approaches, see Refs. 12 and 17.

We extend the convex optimization approach of Ref. 3 to handle the case when no feasible trajectory to the target exists. If no feasible trajectory to the target exists, the onboard guidance algorithm must ensure that a safe landing occurs as close as possible to the original target, if necessary using all of the fuel available for powered descent guidance. In this paper we present an algorithm that solves this minimum landing error problem. The algorithm calculates the minimum-fuel trajectory to the target if one exists, and calculates the trajectory that minimizes the landing error if no solution to the target exists. In the spirit of Ref. 3, the approach poses the problem as two Second-Order Cone Programs, which can be solved to global optimality with deterministic bounds on the number of iterations required. This minimum landing error capability will be necessary for missions that want to increase landing accuracy, but cannot carry enough fuel to ensure that the target can be reached in all possible scenarios. In addition the capability will enable safe landing as a contingency in the case where when the position and velocity of the lander at parachute cutoff is outside of the range of values anticipated during mission design. Causes of this misprediction include higher-than-expected winds or atmospheric parameters, such as atmospheric density, being outside of the modeled values. Since there remains a great deal of uncertainty in atmospheric models, this possibility should be considered in the mission design.

The key difficulty in posing the minimum landing error problem as a convex optimization problem is the presence of non-convex constraints, namely the nonlinear system dynamics and the non-convex thrust constraints. The thrust constraints are non-convex because of a minimum thrust magnitude constraint, which arises because, once started, the thrusters cannot be throttled below a certain level. In Ref. 3, we rendered the minimum-fuel guidance problem convex by relaxing the non-convex constraints and then proving that any optimal solution of the relaxed problem is also an optimal solution to the full non-convex problem.

We refer to this approach as lossless convexification. The primary theoretic contribution of the present paper is an analogous convexification for the minimum landing error powered descent guidance problem. We pose two optimization problems in which the non-convex constraints have been relaxed to yield Second-Order Cone Programs. We solve these problems sequentially, and then provide a new analytic result that shows that any optimal solution to the second relaxed problem is also an optimal solution to the non-convex minimum landing error problem. This result is then used to develop the algorithm that solves the minimum landing error problem. Furthermore, we show that the solution uses the least fuel of all the optimal solutions to the minimum landing error problem.

This paper is organized as follows: In Section II we review the convex optimization approach of Ref. 3 to solving the minimum-fuel PDG problem before defining the minimum landing error PDG problem in Section III. In Section B we present the main analytic result of the paper, namely the convexification of non-convex control constraints. In Section IV we present the new algorithm for minimum landing error PDG. Section V gives simulation results and Section VI presents our conclusions.

II. Minimum-Fuel Powered Descent Guidance

In this section we review the minimum-fuel powered descent guidance approach of Ref. 3. The minimum-fuel PDG problem consists of finding the thrust profile that takes the lander from an initial position and an initial velocity to rest at the prescribed target location, and minimizes the fuel mass consumed in doing so.

The minimum-fuel PDG problem is defined formally in Problem 1. Throughout this paper we use e_(i) to denote a column vector of all zeros except the i^(th) row, which is unity. We use to denote the two-norm of the vector. We use a.e. to mean almost everywhere, that is, everywhere except on a set of measure zero.

$\begin{matrix} {\left( {{Non}\text{-}{convex}\mspace{14mu} {minimum}\text{-}{fuel}\mspace{14mu} {guidance}\mspace{14mu} {problem}} \right).} & {{Problem}\mspace{14mu} 1} \\ {{{{\max\limits_{t_{f},{T_{c}{( \cdot )}}}{m\left( t_{f} \right)}} - {m(0)}} = {\min\limits_{t_{f},{T_{c}{( \cdot )}}}{\int_{0}^{t_{f}}{\alpha {{T_{c}(t)}}\ {t}}}}}{{subject}\mspace{14mu} {to}\text{:}}} & (1) \\ {{\overset{¨}{r}(t)} = {{g + {{T_{c}(t)}\text{/}{m(t)}\mspace{14mu} {\overset{.}{m}(t)}}} = {{- \alpha}{{T_{c}(t)}}}}} & (2) \\ {0 < \rho_{1} \leq {{T_{c}(t)}} \leq \rho_{2}} & (3) \\ {{r(t)} \in {X\; {\forall{t \in \left\lbrack {0,t_{f}} \right\rbrack}}}} & (4) \\ {{{m(0)} = m_{wet}},{{m\left( t_{f} \right)} \geq m_{dry}}} & (5) \\ {{{r(0)} = r_{0}},{{\overset{.}{r}(0)} = {\overset{.}{r}}_{0}}} & (6) \\ {{{e_{1}^{T}{r\left( t_{f} \right)}} = 0},{{\left\lbrack {e_{2}\mspace{14mu} e_{3}} \right\rbrack^{T}{r\left( t_{f} \right)}} = q},{{\overset{.}{r}\left( t_{f} \right)} = 0}} & (7) \end{matrix}$

Here, q∈R² defines the location of the landing target on the surface. We use X to define the set of feasible positions of the spacecraft, namely the glide slope constraint:

X={r∈

³ :∥S(r−r(t _(f)))∥−c ^(T)(r−r(t _(f)))≦0},  (8a)

where S and c are defined by the user to specify a feasible cone with a vertex at r(t_(f)):

$S\overset{\Delta}{=}{{\begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}\mspace{14mu} c}\overset{\Delta}{=}{{e_{1}\tan \; \alpha \mspace{14mu} \alpha} > 0.}}$

Here α is the minimum glide slope angle, illustrated in FIG. 1. The glide slope constraint (8a) ensures that the trajectory to the target cannot be too shallow and cannot go subsurface. X is a convex set with an interior defined by

intX:={x∈X:∃r>0 such that ξ∈X if ∥x−ξ∥<r},  (9)

and the boundary of X is given by

∂X:={x∈X:x∉intX}.

The inequalities in (8) ensure that the planned trajectory does not fly below the surface and that general cone constraints on the lander's position are satisfied.

These cone constraints are used to specify, for example, minimum glideslope angles; these ensure that the trajectory to the target cannot be too shallow. Equation (5) defines the initial mass of the lander and ensures that no more fuel than available is used. Equation (6) defines the initial position and velocity of the lander, while (7) constrains the lander to be at rest at the target at the final time.

A key challenge in solving Problem 1 consists of the non-convex thrust magnitude constraints in (3). These prevent the direct use of convex optimization techniques in solving this problem. The key theoretical innovation of Ref. 3 is to relax these non-convex constraints to give the following problem and to show that the optimal solution of this relaxed problem is also an optimal solution of Problem 1:

$\begin{matrix} {\left( {{Relaxed}\mspace{14mu} {minimum}\text{-}{fuel}\mspace{14mu} {guidance}\mspace{14mu} {problem}} \right).} & {{Problem}\mspace{14mu} 2} \\ {{\min\limits_{t_{f},{T_{c}{( \cdot )}},\mspace{14mu} {\Gamma {( \cdot )}}}{\int_{0}^{t_{f}}{{\Gamma (t)}\ {t}}}}{{subject}\mspace{14mu} {to}\text{:}}} & (10) \\ {{\overset{¨}{r}(t)} = {{g + {{T_{c}(t)}\text{/}{m(t)}\mspace{14mu} {\overset{.}{m}(t)}}} = {- {{\alpha\Gamma}(t)}}}} & (11) \\ {{{T_{c}(t)}} \leq {{\Gamma (t)}\mspace{14mu} 0} < \rho_{1} \leq {\Gamma (t)} \leq \rho_{2}} & (12) \\ {{r(t)} \in {X{\forall{t \in \left\lbrack {0,t_{f}} \right\rbrack}}}} & (13) \\ {{{m(0)} = m_{wet}},{{m\left( t_{f} \right)} \geq m_{dry}}} & (14) \\ {{{r(0)} = r_{0}},{{\overset{.}{r}(0)} = {\overset{.}{r}}_{0}}} & (15) \\ {{{e_{1}^{T}{r\left( t_{f} \right)}} = 0},{{\left\lbrack {e_{2}\mspace{14mu} e_{3}} \right\rbrack^{T}{r\left( t_{f} \right)}} = q},{{\overset{.}{r}\left( t_{f} \right)} = 0}} & (16) \end{matrix}$

Note that the non-convex thrust constraints in Equation (3) have been replaced with convex set of constraints (Eq. 12). In Ref. 3 we showed that this constraint relaxation allows the discrete-time form of Problem 2 to be posed as a convex optimization problem. Furthermore, the following lemma formally states that an optimal solution to the relaxed minimum-fuel problem is also an optimal solution to the full, non-convex minimum-fuel PDG problem.

Lemma 1. Let {t_(f)*, T_(c)(•), Γ*(t)} be an optimal solution to Problem 2 such that the corresponding state trajectory r*(t) is on the boundary of the state constraints ∂X for at most one point on t∈[0, t_(f)*]. Then, {t_(f)*, T_(c)(•)} is an optimal solution to Problem 1.

Proof of Lemma 1 is provided in the documents: Acikmese, B. and Ploen, S. R., “Convex Programming Approach to Powered Descent Guidance for Mars Landing,” AIAA Journal of Guidance, Control and Dynamics, Vol. 30, No. 5; 2007, pp. 1353-1366 and Blackmore, L., and Acikmese, B., “Minimum Landing Error Powered Descent Guidance for Mars Landing using Convex Optimization” Under Review. Journal of Guidance, Control, and Dynamics, 2009, which are hereby incorporated by reference herein. Specifically, “Convex Programming Approach to Powered Descent Guidance for Mars Landing,” provides a proof of Lemma 1 when the optimal state trajectory is strictly in the interior of the state constraints, while “Minimum Landing Error Powered Descent Guidance for Mars Landing using Convex Optimization” extends this to cases where there is contact with the boundary of the state constraints.

The approach of Ref. 3 solves the non-convex minimum-fuel PDG problem by solving a relaxed, convex version of the problem, which is a convex optimization problem. The convexification is lossless, in the sense that no part of the feasible space of the original problem is removed in the convexification process. The resulting optimization problem is a Second-Order Cone Program, for which solution techniques exist that guarantee the globally optimal solution can be found to a certain accuracy within a deterministic number of iterations. However, if a feasible solution does not exist, the optimization will simply report “infeasible,” even though it may still be possible to land safely at some distance from the original target. In the next sections, therefore, we extend the approach of Ref. 3 to solve the minimum landing error problem.

III. Minimum Landing Error Powered Descent Guidance Problem Statement

The minimum landing error powered descent guidance problem consists of minimizing the final distance from the target subject to non-convex thrust magnitude constraints and glideslope constraints, while ensuring that no more fuel mass is used than is available. The problem is stated formally in Problem 3. below

$\begin{matrix} {\left( {{Non}\text{-}{convex}\mspace{14mu} {minimum}\; {landing}\mspace{14mu} {error}\mspace{14mu} {guidance}\mspace{14mu} {problem}} \right).} & {{Problem}\mspace{14mu} 3} \\ {{\min\limits_{t_{f},{T_{c}{( \cdot )}}}{{r\left( t_{f} \right)}}^{2}}{{subject}\mspace{14mu} {to}\text{:}}} & (17) \\ {{\overset{¨}{r}(t)} = {{g + {{T_{c}(t)}\text{/}{m(t)}\mspace{14mu} {\overset{.}{m}(t)}}} = {{- \alpha}{{T_{c}(t)}}}}} & (18) \\ {0 < \rho_{1} \leq {{T_{c}(t)}} \leq \rho_{2}} & (19) \\ {{r(t)} \in {X{\forall{t \in \left\lbrack {0,t_{f}} \right\rbrack}}}} & (20) \\ {{{m(0)} = m_{wet}},{{m\left( t_{f} \right)} \geq m_{dry}}} & (21) \\ {{{r(0)} = r_{0}},{{\overset{.}{r}(0)} = {\overset{.}{r}}_{0}}} & (22) \\ {{{{r\left( t_{f} \right)}^{T}e_{1}} = 0},{{\overset{.}{r}\left( t_{f} \right)} = 0}} & (23) \end{matrix}$

There are a number of key differences between this and the minimum-fuel guidance problem (Problem 1). First, the cost in Problem 3 is now the squared Euclidean distance from the target at the final time. Minimizing the squared distance is equivalent to minimizing the distance itself, since ∥r(t_(f))∥≧0 and x² is monotonic for x≧0.}. To simplify notation we have assumed that the target is at zero, without loss of generality. Second, the final position is no longer required to be at the goal as in (7). Instead, (23) constrains the final altitude to be zero and the final velocity to be zero. Note that the cone constraints in (8) are defined around the state at the final time step, and not around the origin. This allows glideslope constraints to be imposed even in the case that it is not possible to reach the target, as illustrated in FIG. 1.

Once again, the key difficulty in solving Problem 3 is that the thrust constraints (19) are non-convex. The approach of Ref. 3 suggests that we overcome this problem through a similar convexification of the thrust constraints. Unfortunately, the result in Lemma 1 does not apply to Problem 3. This means that we are not guaranteed that an optimal solution to a convexified relaxation of the minimum landing error problem is an optimal solution to the minimum landing error problem. In Section IV we therefore propose a new convexification for minimum landing error powered descent guidance.

IV. Minimum Landing Error Powered Descent Guidance Technique

In this section we present a new technique for minimum landing error powered descent guidance. In Section IV-A we present the algorithm. In Section IV-B we present a corresponding proof that the algorithm returns the globally optimal solution to Problem 3 if a solution exists.

A. Description

In this section we describe the main algorithm for the solution of the minimum landing error powered descent problem (Problem 3). The key idea is to perform a prioritized optimization such that, first, the distance between the prescribed target and the achievable landing location is minimized by solving Problem 4. Then a minimum fuel trajectory achieving this minimum landing error is generated by solving a slightly modified version of Problem 5. As we show in Section IV-B, this approach ensures that the resulting trajectory satisfies non-convex thrust constraints and returns the globally optimal solution to Problem 3 if one exists. The new algorithm is given in Table 1.

TABLE 1 Prioritized Powered Descent Guidance Algorithm Prioritized Powered Descent Guidance Algorithm 1) Solve the relaxed minimum landing error guidance problem (Problem 4) for {t_(f)*, T_(e)*(·), Γ*(·)} with corresponding trajectory r*(·). If no solution exists, return infeasi le 2) Solve the relaxed minimum-fuel guidance problem to specified range (Problem 5) with D = ∥r(t_(f)*)∥ for {t_(f) ^(†), T_(e) ^(†)(·), Γ^(†)(·)}. 3) Return {t_(f) ^(†), T_(e) ^(†)(·)}.

$\begin{matrix} {\left( {{Relaxed}\mspace{14mu} {minimum}\mspace{14mu} {landing}\mspace{14mu} {error}\mspace{14mu} {guidance}\mspace{14mu} {problem}} \right).} & {{Problem}\mspace{14mu} 4} \\ {{\min\limits_{t_{f},{T_{c}{( \cdot )}},{\Gamma {( \cdot )}}}{{r\left( t_{f} \right)}}^{2}}{{subject}\mspace{14mu} {to}\text{:}}} & (24) \\ {{\overset{¨}{r}(t)} = {{g + {{T_{c}(t)}\text{/}{m(t)}\mspace{14mu} {\overset{.}{m}(t)}}} = {- {{\alpha\Gamma}(t)}}}} & (25) \\ {{{T_{c}(t)}} \leq {{\Gamma (t)}\mspace{14mu} 0} < \rho_{1} \leq {\Gamma (t)} \leq \rho_{2}} & (26) \\ {{r(t)} \in {X{\forall{t \in \left\lbrack {0,t_{f}} \right\rbrack}}}} & (27) \\ {{{m(0)} = m_{wet}},{{m\left( t_{f} \right)} \geq m_{dry}}} & (28) \\ {{{r(0)} = r_{0}},{{\overset{.}{r}(0)} = {\overset{.}{r}}_{0}}} & (29) \\ {{{{r\left( t_{f} \right)}^{T}e_{1}} = 0},{{\overset{.}{r}\left( t_{f} \right)} = 0}} & (30) \end{matrix}$

$\begin{matrix} {\left( {{Relaxed}\mspace{14mu} {minimum}\text{-}{fuel}\mspace{11mu} \text{}{guidance}\mspace{14mu} {problem}\mspace{14mu} {to}\mspace{14mu} {specified}\mspace{14mu} {range}} \right).} & {{Problem}\mspace{14mu} 5} \\ {{\min\limits_{t_{f},{T_{c}{( \cdot )}},\mspace{14mu} {\Gamma {( \cdot )}}}{\int_{0}^{t_{f}}{{\Gamma (t)}\ {t}}}}{{subject}\mspace{14mu} {to}\text{:}}} & (31) \\ {{\overset{¨}{r}(t)} = {{g + {{T_{c}(t)}\text{/}{m(t)}\mspace{14mu} {\overset{.}{m}(t)}}} = {- {{\alpha\Gamma}(t)}}}} & (32) \\ {{{T_{c}(t)}} \leq {{\Gamma (t)}\mspace{14mu} 0} < \rho_{1} \leq {\Gamma (t)} \leq \rho_{2}} & (33) \\ {{{r(t)}^{T}e_{1}} \geq {0\mspace{11mu} {\forall{t\; \in \; \left\lbrack {0,t_{f}} \right\rbrack}}}} & (34) \\ {{r(t)} \in {X{\forall{t \in \left\lbrack {0,t_{f}} \right\rbrack}}}} & (35) \\ {{{m(0)} = m_{wet}},{{m\left( t_{f} \right)} \geq m_{dry}}} & (36) \\ {{{r(0)} = r_{0}},{{\overset{.}{r}(0)} = {\overset{.}{r}}_{0}}} & (37) \\ {{{{r\left( t_{f} \right)}^{T}e_{1}} = 0},{{{r\left( t_{f} \right)}} \leq D},{{\overset{.}{r}\left( t_{f} \right)} = 0}} & (38) \end{matrix}$

To generate Problem 4 we relaxed the non-convex thrust constraints of the original minimum landing-error problem stated in Problem 3. This relaxation is performed in the same manner that the minimum-fuel PDG problem is relaxed from Problem 1 to Problem 2. Since the relaxed minimum landing-error problem (Problem 4) has convex inequality constraints on the state as well as on the controls, it can be solved with existing solvers. However, unlike minimum-fuel PDG, in which an optimal solution to the relaxed Problem 2 is also an optimal, feasible solution to Problem 1, an optimal solution to the relaxed minimum landing-error problem (Problem 4) is not necessarily an optimal, feasible solution to the original minimum landing-error problem, Problem 3. In particular, another step is needed to ensure that the non-convex thrust constraints are satisfied. This step consists of solving Problem 5, which also has relaxed constraints. However, since Problem 5 minimizes fuel use, we can use the result of Lemma 1 to prove that the solution to Problem 5 will satisfy the non-convex thrust constraints of Problem 3. We will show in Section IV-B that the solution to Problem 5 is the optimal solution to Problem 3, and that it uses the minimum possible fuel of all optimal solutions to Problem 3.

In order to solve Problems 4 and 5 in practice, three additional steps are required; first a change of variables to remove the nonlinear (and hence non-convex) dynamic constraints; second, a discretization in time; and third, a line search for the optimal time of flight. For these steps we use an identical approach to Ref. 3, which we review in Sections IV-C through IV-E.

B. Analytic Convexification

In this section we provide two necessary technical lemmas, before proving the main convexification result, which is given in Theorem 1.

Lemma 2: Assume that an optimal solution to Problem 5 exists, which we denote {t⁵ _(f), T_(c) ⁵(•), Γ⁵(•)}, which has a corresponding trajectory r⁵(•) that is on the boundary ∂X for at most one point on t∈[0, t_(f) ⁵]. Then {t_(f) ⁵, T_(c) ⁵(•)} is a feasible solution to problem 1 with q=[e₂ e₃]^(T)·r⁵ (t_(f) ⁵).

Proof: We first claim that {t_(f) ⁵, T_(c) ⁵(•), Γ⁵(•)} is an optimal solution to problem 2 with q=[e₂ e₃]^(T)·r⁵ (t_(f) ⁵). The proof of this is by contradiction. Let us assume that there exists a solution {t_(f)*, T_(c)*(•), Γ*(•)}that satisfies the constraints of Problem 2 with q=[e₂ e₃]^(T)r⁵ (t_(f) ⁵), but that also has:

∫₀ ^(t) ^(f) Γ*(t)dt<∫ ₀ ^(t) ^(f) Γ⁵(t)dt.  (39)

Comparing constraints, we see that {t_(f)*, T_(c)*(•), Γ*(•)} is a feasible solution to Problem 5. Hence {t_(f)*, T_(c)*(•), Γ*(•)} is also a feasible solution with lower cost than the optimal solution {t_(f) ⁵, T_(c) ⁵(•), Γ⁵(•)}, which leads to a contradiction. Hence {t_(f) ⁵, T_(c) ⁵(•), Γ⁵(•)} is an optimal solution to Problem 2 with q=[e₂ e₃]^(T) r⁵ (t_(f) ⁵). Since r⁵(t) is on the boundary ∂X for at most one point on t∈[0, t_(f) ⁵], then by Lemma 1, {t_(f) ⁵, T_(c) ⁵(•), Γ⁵(•)} is a feasible solution to Problem 1 with q=[e₂ e₃]^(T) r⁵ (t_(f) ⁵).

Lemma 3: Assume that an optimal solution to Problem 4 exists, which we denote {t_(f) ⁴, T_(c) ⁴(•), Γ⁴(•)}, which has a corresponding trajectory r⁴(•). Then there exists a feasible, optimal solution to Problem 5 with D=∥r⁴(t_(f) ⁴)∥, which we denote {t_(f) ⁵, T_(c) ⁵(•), Γ⁵(•)} with corresponding trajectory r⁵(•). Assume further that this trajectory is on the boundary ∂X for at most one point on t∈[0, t_(f) ⁵]. Then {t_(f) ⁵, T_(c) ⁵(•)} is a feasible, optimal solution to Problem 3. Furthermore {t_(f) ⁵, T_(c) ⁵(•)} uses the minimum possible fuel of all optimal solutions to Problem 3.

Proof: First, note that {t_(f) ⁴, T_(c) ⁴(•), Γ⁴(•)} is a feasible solution to Problem 5 with D=∥r⁴(t_(f) ⁴)∥ since the only additional constraint in Problem 5 is ∥r(t_(f) ⁴)∥≦D, and by design, we have D=∥r⁴(t_(f) ⁴)∥. Hence, a feasible solution to problem 5 exists for D=∥r⁴(t_(f) ⁴)∥. Solving this problem, we obtain {t_(f) ⁵, T_(c) ⁵(•), Γ⁵(•)}, and from Lemma 2, we know that {t_(f) ⁵, T_(c) ⁵(•)} is a feasible solution to Problem 1 for q=[e₂ e₃]^(T)r⁵(t_(f) ⁵). By comparing constraints, we see that any feasible solution to Problem 1 is a feasible solution to Problem 3. Hence, {t_(f) ⁵, T_(c) ⁵(•)} is a feasible solution to Problem 3. This means that:

∥r ⁵(t _(f) ⁵)∥≦∥r ³(t _(f) ³)∥

Where r³(•) denotes the trajectory corresponding to the optimal solution to Problem 3. Now since Problem 4 is a relaxation of Problem 3, we know that ∥r⁴(t_(f) ⁴)∥≦∥r³(t_(f) ³)∥. Since in Problem 5 we have assigned D=∥r⁴(t_(f) ⁴)∥, we also know that ∥r⁵(t_(f) ⁵)∥≦∥r⁴(t_(f) ⁴)∥ and hence:

∥r ⁵(t _(f) ⁵)∥≦∥r ³(t _(f) ³)∥,

Combining (40) and (41) we have ∥r⁵(t_(f) ⁵)∥≦∥r³(t_(f) ³)∥. Hence the landing error in the optimal solution to Problem 5 is the same as that in a globally optimal solution to Problem 3. We have already shown that {t_(f) ⁵, T_(c) ⁵(•)} is a feasible solution to Problem 3. Hence {t_(f) ⁵, T_(c) ⁵(•)} is an optimal solution to Problem 3.

We now show that {t_(f) ⁵, T_(c) ⁵(•)} uses the minimum possible fuel of all optimal solutions to Problem 3. We know that {t_(f) ⁵, T_(c) ⁵(•)} is an optimal solution to Problem 3. Hence all optimal solutions to Problem 3 have ∥r(t_(f))∥=∥r⁵(t_(f) ⁵)∥≦∥r⁴(t_(f) ⁴)∥. The proof is by contradiction. Assume that there exists an optimal solution {t_(f) ^(†), T_(c) ^(†)(•)} to Problem 3 with corresponding trajectory r^(†)(•) that also has:

∫₀ ^(†) ^(ƒ) ∥T _(c) ^(†)(t)∥dt<∫ ₀ ^(t) ^(ƒ) ⁵ ∥T _(c) ⁵(t)∥dt.

Comparing constraints, since ∥r^(†)(t_(f) ^(†))∥≦∥r⁴(t_(f) ⁴)∥ we know that {t_(f) ^(†), T_(c) ^(†)(•), Γ^(†)(•)} with Γ^(†)(•)=∥T_(c) ^(†)(•)∥ is also a feasible solution to Problem 5 with D=∥r⁴(t_(f) ⁴∥. From (42) this solution has a lower cost than {t_(f) ⁵, T_(c) ⁵(•)}. This leads to a contradiction since {t_(f) ⁵, T_(c) ⁵(•), Γ5⁵(•)} is the optimal solution to Problem 5 with D=∥r⁴(t_(f) ⁴∥. Hence there is no optimal solution to Problem 3 that uses less fuel than {t_(f) ⁵, T_(c) ⁵(•)}.

The following theorem is the main result of this paper and it follows from Lemmas 1 through 3.

Theorem 1. If a solution to the non-convex minimum landing error guidance problem (Problem 3) exists, then the prioritized powered descent guidance algorithm returns a solution {t_(f) ^(†), T_(c) ^(†)(•)} with trajectory r^(†)(•). If this trajectory is on the boundary of the state constraints ∂X for at most one point on the interval [0, t_(f) ^(†)], then it is an optimal solution to Problem 3. Furthermore the returned solution uses the minimal fuel among all optimal solutions of Problem 3.

Proof: Since Problem 4 is a relaxation of Problem 3, we know that if there is a feasible solution to Problem 3, there exists a feasible solution to Problem 4, and the prioritized powered descent guidance will not return infeasible. Then from Lemma 3 we know that {t_(f) ^(†), T_(c) ^(†)(•)} is an optimal solution to Problem 3, and that this solution uses the least fuel of all optimal solutions to Problem 3.

Note that Theorem 1 implies that the prioritized powered descent guidance algorithm returns infeasible only if no solution to the non-convex minimum landing error guidance problem (Problem 3) exists. Hence the convexification approach is lossless, in the sense that no part of the feasible region of the original problem is removed by convexifying the non-convex constraints.

Remark 1. As with the minimum fuel powered descent guidance problem we have observed that, for Mars landing, all the optimal trajectories that are generated via solving the relaxed minimum-fuel guidance problem to specified range touch the boundary of the feasible state region at most one time instant.

Hence the prioritized powered descent guidance algorithm has always returned optimal solutions to the original non-convex minimum landing error problem for Mars powered descent guidance. This includes an extensive empirical investigation across the space of feasible initial conditions and system parameters.

Remark 2. Observe that in Step 1 of the prioritized powered descent guidance algorithm, we do not necessarily obtain a fuel-optimal solution, but that Step 2 ensures a fuel-optimal solution is found. In this way the two-step approach is a way of prioritizing a multi-objective optimization problem. This approach is different from the more typical regularization procedure where both distance and fuel costs are combined in a single cost function to ensure that a single optimal solution exists. The prioritization approach removes two of the key problems associated with regularization. First, regularization requires that the relative weights on fuel and distance are chosen, which is usually carried out in an ad-hoc manner. Second, regularized solutions do not necessarily make physical sense. Our approach removes this ambiguity from the problem description and obtains a physically meaningful solution.

C. Change of Variables

In this section we review the change of variables employed by Ref. 3 to remove the non-convex constraints introduced by the nonlinear state dynamics (25).

The change of variables leads to Problem 6, presented later in this section, that is a continuous-time optimal control problem with a convex cost and convex constraints.

The change of variables is given by:

$\begin{matrix} {{\sigma \overset{\Delta}{=}\frac{\Gamma}{m}}{u\overset{\Delta}{=}\frac{T_{c}}{m}}{z\overset{\Delta}{=}{\ln \mspace{14mu} {m.}}}} & (43) \end{matrix}$

Equation (25) can then be rewritten as:

$\begin{matrix} {{{\overset{¨}{r}(t)} = {{u(t)} + g}},} & (44) \\ {\overset{.}{z} = {\frac{\overset{.}{m}(t)}{m(t)} = {- {{{\alpha\sigma}(t)}.}}}} & (45) \end{matrix}$

The change of variables therefore yields a set of linear equations for the state dynamics. The control constraints, however are no longer convex. These are now given by:

∥u(t)∥≦σ(t)∀t∈[0,t _(f)]  (46)

ρ₁ e ^(−z(t))≦σ(t)≦ρ₂ e ^(−z(t)) ∀t∈[0,t _(f)].  (47)

The approach of Ref. 3 uses a second order cone approximation of the inequalities in (47) that can be readily incorporated into the SOCP solution framework. The left-hand inequality of (47) can be approximated by a second order cone by using the first three terms of the Taylor series expansion of e^(−z), giving:

${{\rho_{1}{^{- z_{0}}\left\lbrack {1 - \left( {z - z_{0}} \right) + \frac{\left( {z - z_{0}} \right)^{2}}{2}} \right\rbrack}} \leq \sigma},$

where z₀ is a given constant. For the right-hand inequality in (47), a linear approximation of e^(−z) is used corresponding to the first two terms of the Taylor series expansion of e^(−z), thereby obtaining:

σ≦ρ₂ e ^(−z) ⁰ [1−(z−z ₀)].

A linear approximation must be used, since requiring a variable to be less than a quadratic is non-convex. Letting:

μ₁

ρ₁e^(−z) ⁰ , μ₂

ρ₂e^(−z) ⁰ ,  (48)

we obtain the following second order cone and linear approximations of (47):

$\begin{matrix} {{{{\mu_{1}(t)}\begin{bmatrix} {1 - \left( {{z(t)} - {z_{0}(t)}} \right) +} \\ \frac{\left( {{z(t)} - {z_{0}(t)}} \right)^{2}}{2} \end{bmatrix}} \leq {\sigma (t)} \leq {{\mu_{2}(t)}\left\lbrack {1 - \left( {{z(t)} - {z_{0}(t)}} \right)} \right\rbrack}}{{\forall{t \in \left\lbrack {0,t_{f}} \right\rbrack}},}} & (49) \end{matrix}$

where:

z ₀(t)=ln(m _(wet) −αp ₂ t),  (50)

and m_(wet) is the initial mass of the spacecraft. An approximation of Problem 4 can now be expressed in terms of the new control variables:

$\begin{matrix} {\left( {{Relaxed}\mspace{14mu} {minimum}\mspace{14mu} {landing}\mspace{14mu} {error}\; {problem}\mspace{14mu} {with}\mspace{14mu} {changed}\mspace{14mu} {variables}} \right).} & {{Problem}\mspace{14mu} 6} \\ {{\min\limits_{t_{f},{T_{c}{( \cdot )}},\mspace{14mu} {\Gamma {( \cdot )}}}{{r\left( t_{f} \right)}}^{2}}{{subject}\mspace{14mu} {to}\text{:}}} & (51) \\ {{\overset{¨}{r}(t)} = {{g + {{u(t)}\mspace{14mu} {S(t)}}} = {- {{\alpha\sigma}(t)}}}} & (52) \\ {{{u(t)}} \leq {\Gamma (t)}} & (53) \\ {{{\mu_{1}(t)}\begin{bmatrix} {1 - \left( {{z(t)} - {z_{0}(t)}} \right) +} \\ \frac{\left( {{z(t)} - {z_{0}(t)}} \right)^{2}}{2} \end{bmatrix}} \leq \begin{matrix} {{\sigma (t)} \leq {\mu_{2}(t)}} \\ \left\lbrack {1 - \left( {{z(t)} - {z_{0}(t)}} \right)} \right\rbrack \end{matrix}} & (54) \\ {{r(t)} \in {X{\forall{t \in \left\lbrack {0,t_{f}} \right\rbrack}}}} & (55) \\ {{{m(0)} = m_{wet}},{{m\left( t_{f} \right)} \geq m_{dry}}} & (56) \\ {{{r(0)} = r_{0}},{{\overset{.}{r}(0)} = {\overset{.}{r}}_{0}}} & (57) \\ {{{{r\left( t_{f} \right)}^{T}e_{1}} = 0},{{\overset{.}{r}\left( t_{f} \right)} = 0.}} & (58) \end{matrix}$

Problem 6 is an approximation of the relaxed minimum landing error PDG problem (Problem 4) in which the nonlinear equality constraints have been eliminated. Furthermore, Ref. 3 shows that the approximation of the inequalities in (47) given by (49) is generally very accurate for both parts of the inequality, and derives an analytic upper bound on the approximation error. Problem 6 is a continuous-time optimal control problem with convex constraints and a convex cost function. To solve this using a direct optimization approach, a discretization in time is required, which we describe in Section IV-D.

D. Time Discretization

In this section, we apply the discretization of Ref. 3 to Problem 6, and develop a numerical algorithm to solve the resulting discrete version of the problem. The discretization of Problem 6 converts the infinite-dimensional optimization problem to a finite-dimensional one by discretizing the time domain into equal time intervals and imposing the constraints at edges of the timesteps, which we refer to as temporal nodes. Since the constraints are linear or second order cone constraints, the resulting problem is a finite-dimensional SOCP problem that can be efficiently solved by readily available algorithms.

For any given time interval [0, t_(f)], and time increment, Δt, the temporal nodes are given as:

t_(k)=kΔt k=0, . . . , N, where NΔt=t_(f). Define a vector of parameters as:

$\begin{matrix} {\eta = {\begin{bmatrix} p_{0} \\ \vdots \\ p_{M} \end{bmatrix}\text{:}}} & (59) \end{matrix}$

where p_(j)∈

⁴. We describe the control input, u, and σ in terms of these parameters and some prescribed basis functions, φ₁(•), . . . φ_(M)(•):

$\begin{matrix} {{\begin{bmatrix} {u(t)} \\ {\sigma (t)} \end{bmatrix} = {\sum\limits_{j = 0}^{M}\; {P_{j}{\varphi_{j}(t)}}}}\; {{t \in \left\lbrack {0,t_{f}} \right\rbrack},}} & (60) \end{matrix}$

Then the solution of the differential equations (44) and (45) at the temporal nodes and the control inputs at the temporal nodes can be expressed in terms of these coefficients:

$\begin{matrix} {{y_{k}\overset{\Delta}{=}{\begin{bmatrix} {r\left( t_{k} \right)} \\ {\overset{.}{r}\left( t_{k} \right)} \\ {z\left( t_{k} \right)} \end{bmatrix} = {{{\Phi_{k}\begin{bmatrix} r_{0} \\ {\overset{.}{r}}_{0} \\ {\ln \mspace{14mu} m_{wet}} \end{bmatrix}} + {\Lambda_{k}\begin{bmatrix} g \\ 0 \end{bmatrix}} + {\Psi_{k}\eta k}} = 1}}},\ldots \mspace{14mu},N} & (61) \\ {{\begin{bmatrix} u_{k} \\ \sigma_{k} \end{bmatrix}\overset{\Delta}{=}{\begin{bmatrix} {u\left( t_{k} \right)} \\ {\sigma \left( t_{k} \right)} \end{bmatrix} = {\mathrm{\Upsilon}_{k}\eta}}}{{k = 1},\ldots \mspace{14mu},{N.}}} & (62) \end{matrix}$

where Φ_(k), Ψ_(k), Λ_(k) and Y_(k) are matrix functions of the time index k determined by the basis functions chosen. In this paper, we use piecewise linear basis functions with M=N, such that:

$\begin{matrix} {{\varphi_{j}(t)} = \left\{ \begin{matrix} \frac{t_{j} - t}{\Delta \; t} & {{{when}\mspace{14mu} t} \in \left\lbrack {t_{j - 1},t_{j}} \right)} \\ \frac{t - t_{j}}{\Delta \; t} & {{{when}\mspace{14mu} t} \in \left\lbrack {t_{j},t_{j\; 11}} \right)} \\ 0 & {{otherwise},} \end{matrix} \right.} & (63) \end{matrix}$

and:

$\begin{matrix} {{p_{j} = \begin{bmatrix} {u\left( t_{j} \right)} \\ {\sigma \left( t_{j} \right)} \end{bmatrix}}{{j = 0},\ldots \mspace{14mu},{M.}}} & (64) \end{matrix}$

This corresponds to first-order hold discretization of a linear time invariant system for the dynamics of the spacecraft (44) and (45), with the vector [r(t_(k))^(T), {dot over (r)}(t_(k))^(T), z(t_(k))^(T)]^(T) as the state. Explicit expressions for Φ_(k), Ψ_(k), Λ_(k) and Y_(k) can be obtained using standard techniques; we do not repeat this derivation here, but refer the interested reader to Ref. 19. As noted by Ref. 3, more sophisticated basis functions such as Chebyshev polynomials can be used, which may allow the controls to be described with significantly fewer coefficients, i.e. M<<N. Now, with the following additional notation, Problem 7 describes the discretized version of Problem 6:

E=[I _(3×3)0_(3×4) ]F=[0_(1×6)1]E _(u) =[I _(3×3)0_(3×1) ]E _(v)=[0_(3×3) I _(3×3)0_(33×1)].  (65)

$\begin{matrix} {\left( {{Discretized}\mspace{14mu} {Relaxed}\mspace{14mu} {Minimum}\mspace{11mu} \text{}{Landing}\mspace{14mu} {Error}\mspace{14mu} {Guidance}\mspace{14mu} {Problem}} \right).} & {{Problem}\mspace{14mu} 7} \\ {{\min\limits_{N,\eta}{{Ey}_{N}}^{2}}{{subject}\mspace{14mu} {to}\text{:}}} & (66) \\ {{{{{E_{u}\mathrm{\Upsilon}_{k}\eta}} \leq {e_{\sigma}^{T}\mathrm{\Upsilon}_{k}\eta \mspace{14mu} k}} = 0},\ldots \mspace{14mu},N} & (67) \\ {{{\mu_{1}(t)}\begin{bmatrix} {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right) +} \\ \frac{\left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)^{2}}{2} \end{bmatrix}} \leq \begin{matrix} {{e_{4}^{T}\mathrm{\Upsilon}_{k}\eta} \leq {\mu_{2}(t)}} \\ \left\lbrack {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)} \right\rbrack \end{matrix}} & (68) \\ {{{{Ey}_{k} \in {X\; k}} = 1},\ldots \mspace{14mu},N} & (69) \\ {{Fy}_{N} \geq {\ln \; m_{dry}}} & (70) \\ {{{y_{N}^{T}e_{1}} = 0},{{E_{v}y_{N}^{T}} = 0}} & (71) \\ {{y_{k} = {{{\Phi_{k}\begin{bmatrix} r_{0} \\ {\overset{.}{r}}_{0} \\ {\ln \; m_{wet}} \end{bmatrix}} + {\Lambda_{k}\begin{bmatrix} g \\ 0 \end{bmatrix}} + {\Psi_{k}\eta \mspace{14mu} k}} = 1}},\ldots \mspace{14mu},{N.}} & (72) \end{matrix}$

Note that, for any given N, Problem 7 defines a finite-dimensional second-order-cone program (SOCP), which can be solved very efficiently with guaranteed convergence to the globally optimal solution by using existing SOCP algorithms.

Here N describes the time of flight since t_(f)=NΔt. To find the optimal time of flight, Ref. 3 propose performing a line search for the optimal N, solving at each iteration an SOCP for the remaining optimization parameters η. We perform an identical search to solve Problem 7, as described in Section IV-E.

E. Time of Flight Search

For minimum-fuel powered descent guidance, Ref. 3 uses a line search to find the optimal time of flight t_(f)*. In this section we apply this approach to the minimum landing error guidance problem. Extending Ref. 3, Ref. 25 uses a Golden Search technique, which ensures that the interval in which the optimal value is known to lie shrinks by the same constant proportion at each iteration. Golden Search has been shown to be robust and efficient, and it gives an explicit interval in which the optimum is known to lie. This last property means that the search can be terminated when sufficient accuracy has been achieved. The technique relies, however, on two key properties of J(t_(f)), the optimal cost of Problem 3 as a function of t_(f):

$\begin{matrix} {{J\left( t_{f} \right)} = {\min\limits_{{T_{c}{( \cdot )}},{\Gamma {( \cdot )}}}{{{r\left( t_{f} \right)}}^{2}\mspace{14mu} {subject}\mspace{14mu} {to}\mspace{14mu} (18)\mspace{14mu} {through}\mspace{14mu} {(23).}}}} & (73) \end{matrix}$

First, we must know an interval in which t_(f)* is known to lie. That is, we must find bounds t_(l) and t_(u) such that t_(l)≦t_(f)*≦t_(u). Second, J(t_(f)) must be unimodal (see Ref. 26 for a definition of unimodal functions).

In Ref. 25, the authors solve the one-dimensional powered descent guidance problem using the approach of Ref. 6 to obtain values for t_(l) and t_(u). In the case of minimum landing error guidance, we can use the same approach to obtain t_(l).

The approach of Ref. 6 gives the minimum-time solution in the vertical dimension only; that is, it determines the minimum-time thrust profile that eliminates the initial vertical velocity and ends with the lander at zero altitude. Denote the optimal time of this solution as t_(f) ^(1D). In the minimum landing error guidance problem the lander must also have zero final altitude and vertical velocity, hence the constraint set for the minimum landing error guidance problem is tighter than for the one-dimensional problem. This means that any feasible time-of-flight for Problem 3 is no less than t_(f) ^(1D), and hence we can set t_(l)=t_(f) ^(1D)≦t_(f)*.

The approach of Ref. 25 for obtaining t_(u) does not, however, extend to the minimum landing error case. Instead, we use a heuristic scaling to set t_(u)=k_(scale)t_(l), where k_(scale) is on the order of 3. Then, assuming unimodality of J(t_(f)), the golden search approach checks analytically whether t_(u) is a true upper bound. If not, t_(u) is increased until it is an upper bound on t_(f)*.

In Ref. 25, the authors observed experimentally that J(t_(f)) is indeed a unimodal function. Since the present paper is concerned with the minimum landing error problem, this conclusion does not carry over from the minimum-fuel case. In Section V-B we show experimentally that J(t_(f)) is unimodal, and that the Golden Search approach finds t_(f)* to within a few percent.

V. Simulation Results

In this section we present simulation results obtained using the new algorithm. The Second Order Cone Programs were solved using G-OPT, a JPL in-house convex optimizer. Simulations were run on a Macbook Pro 2.4 GHz with 4 GB RAM. In Section V-A we present some example solutions generated by the new approach, while in Section V-B we demonstrate empirically the unimodality of the optimal solution with respect to the time of flight.

A. Example Solutions

We first consider a case where the target \emph{can} be reached given the available fuel, then a case when the target \emph{cannot} be reached. The spacecraft parameters for these simulations are:

g=[−3.7114 0 0]^(T) m _(dry)=1505 kg

m_(wet)=1905 kg I_(sp)=225 s ρ₁=4972N ρ₂=13260N  (74)

A glideslope constraint is used to prevent the trajectory from entering at a more shallow angle than 4°. The spacecraft initial position is given by:

$\begin{matrix} {r_{0} = {\begin{bmatrix} {1500\mspace{14mu} m} \\ 0 \\ {2000\mspace{14mu} m} \end{bmatrix}.}} & (75) \end{matrix}$

In Case 1, the initial velocity is denoted r₀ ⁽¹⁾ and is given by:

$\begin{matrix} {{\overset{.}{r}}_{0}^{(1)} = {\begin{bmatrix} {{- 75}\mspace{14mu} m\text{/}s} \\ 0 \\ {100\mspace{14mu} m\text{/}s} \end{bmatrix}.}} & (76) \end{matrix}$

In Ref. 3 it is shown that there is a feasible solution to the target in this case, but that the solution requires almost all of the available fuel mass. This example illustrates the value of the convex optimization, which, guarantees finding a solution if one exists; even cases at the edge of the physical feasibility can be solved. In FIGS. 2 and 3 we show results generated for Case 1 using the new prioritized minimum landing error PDG approach (Table 1) with 55 time discretization points. Golden Search was terminated when the optimal time of flight was known to within an interval of 3.0 s. Since there exists in this case a feasible solution to the target, the algorithm returns the minimum-fuel solution to the target. This solution requires 399.5 kg of fuel, has t_(f)*=78.3 s and is identical to the solution reported by Ref. 3. The total computation time required was 14.3 s, and 23 iterations of Golden Search were used.

In Case 2, there is an additional initial velocity in the y direction:

$\begin{matrix} {{\overset{.}{r}}_{0}^{(2)} = {\begin{bmatrix} {{- 75}\mspace{14mu} m\text{/}s} \\ {40\mspace{14mu} m\text{/}s} \\ {100\mspace{14mu} m\text{/}s} \end{bmatrix}.}} & (77) \end{matrix}$

Since Case 1 used almost all of the available fuel, and Case 2 has an initial velocity in the y direction away from the target, it is most likely that there will be insufficient fuel to reach the target. We verify this by attempting to solve the minimum-fuel PDG problem using the algorithm of Ref. 3, which reports that the problem is infeasible, and that at least 410 kg of fuel is required to reach the target. The minimum landing error targeting algorithm, however, finds a solution that ensures safe landing at a distance of 268 m from the target. The solution, shown in FIGS. 4 and 5 has t_(f)*=77.6 s and uses the full 400 kg of available fuel. The total computation time required was 16.24 s, and 23 iterations of Golden Search were used.

B. Unimodality of Cost as a Function of Time of Flight

In this section we demonstrate empirically that the optimal cost of the minimum landing error solution is unimodal in the time of flight. Throughout this section we use the spacecraft parameters given in (74). FIG. 6 shows J(t_(f)) for a typical set of initial conditions. The graph was generated by specifying t_(f) in increments of 1s and solving Problem 7 for each value of t_(f). In this case J(t_(f)) is clearly unimodal, as required. By reducing the time increments to 0.01 s close to the minimum, the optimum was found to be at t_(f)=56.35 s. The Golden Search determines the optimum to be 55.83 s, which is an error of only 0.9%. Again Golden Search was terminated when the optimal time of flight was known to within an interval of 3.0 s. The efficacy of the Golden Search approach was investigated for a range of initial conditions by calculating the error between t_(f)* determined through Golden Search, and the true optimum. The true optimum was determined approximately by calculating J(t_(f)) for t_(f)∈[30,150] in increments of 1s. Initial conditions were selected at random using a uniform distribution across a box of values specified by:

$\begin{bmatrix} {1\mspace{14mu} {km}} \\ {{- 5}\mspace{14mu} {km}} \\ {{- 5}\mspace{14mu} {km}} \end{bmatrix} \leq r_{0} \leq {\begin{bmatrix} {2\mspace{14mu} {km}} \\ {5\mspace{14mu} {km}} \\ {5\mspace{14mu} {km}} \end{bmatrix}\begin{bmatrix} {{- 30}\mspace{14mu} m\text{/}s} \\ {{- 100}\mspace{14mu} m\text{/}s} \\ {{- 100}\mspace{14mu} m\text{/}s} \end{bmatrix}} \leq {\overset{.}{r}}_{0} \leq {\begin{bmatrix} {{- 10}\mspace{14mu} m\text{/}s} \\ {100\mspace{14mu} m\text{/}s} \\ {100\mspace{14mu} m\text{/}s} \end{bmatrix}.}$

Since we are only concerned with the unimodality of J(t_(f)) in the minimum landing error case, solutions for which a feasible trajectory to the target existed were discarded. One hundred random initial conditions were chosen, and for these the average percentage error in t_(f)* was 0.012% with a standard deviation of 0.057%. The maximum error across all instances was 1.8%. This demonstrates that the Golden Search approach is effective for a broad range of initial conditions in the case of minimum landing error powered decent guidance.

VI. Implementation

A. Technique

FIG. 7 is a diagram presenting illustrative process steps that can be used to land the spacecraft. A minimum landing error descent solution is computed, as shown in block 702. As described in Section IV above, the solution can be computed for a spacecraft that is subject to non-convex thruster constraints, such as a minimum thrust and a maximum thrust. This solution is computed, by convexifying the non-convex thrust constraint, and determining a solution to the system subject to the convexified non-convex thrust constraint, as described in Problem 4.

If no computed solution exists, then landing cannot be performed safely under the specified conditions, and an “infeasible” result is returned. If a computed solution exists, it may be one in which the landing error range (difference between the desired landing point and the computed landing point, or D=∥r(t_(f)*)∥) is zero, or it may be one in which the landing error range D is non-zero (e.g. the minimum landing error solution result in a landing error).

Next, a thrust profile for the spacecraft is determined from the result obtained above, as shown in block 704. In a simple embodiment, this can be accomplished, for example, by simply setting the thrust profile to T_(c)* (•) as obtained by solving Problem 4. This thrust profile may be used to command the spacecraft thrusters during powered descent, as shown in block 706.

However, as described above, the optimal, feasible solution to the convexified minimum landing error problem (Problem 4) is not necessarily an optimal, feasible solution to the original (non-convex) minimum landing error problem. Also, while the solution to Problem 4 computed above may provide a solution to land the spacecraft on the surface with minimum error when feasible, this is not necessarily a fuel-optimal solution. That is, the solution is not necessarily that solution that minimizes landing thruster fuel use in landing the spacecraft at the landing point. Therefore, setting the thrust profile to T_(c)*(•) for a this point will not guarantee a solution that (1) minimizes landing error, (2) minimizes landing thruster fuel use, and (3) ensures that all of the non-convex thruster constraints are satisfied.

A solution that meets all three objectives can be obtained, however, by taking the further step of convexifying the non-convex thruster constraints and solving the convexified minimum fuel guidance problem subject to constraints that include the landing error range D computed in block 702 above (e.g. solving Problem 5). The resulting solution minimizes landing error and landing thruster fuel use and ensures that all of the non-convex thruster constraints are satisfied.

FIG. 8 is a diagram illustrating how the process of block 704 (determining the thrust profile for the spacecraft subject to the non-convex constraint from the solution computed in block 702) can be performed in such a way so as to minimize landing error and fuel use, and so as to ensure that all non-convex thruster constraints are satisfied. As shown in block 802, a minimum fuel descent solution for the spacecraft is computed subject to the convexified non-convex constraint and the landing error D computed in block 702. The resulting thrust profile T_(c) ⁺(•) for the spacecraft subject to the non-convex thrust constraint is then computed from the minimum fuel descent solution for the convexified non-convex thrust constraint. This resulting thrust profile T_(c) ⁺(•) is not only a minimum error solution and a minimum fuel solution to land the spacecraft with that minimum error, it is also a solution that satisfies all non-convex thruster constraints are satisfied.

B. Spacecraft and Control System

FIG. 9 illustrates a three-axis stabilized spacecraft 900. The spacecraft 900 has a main body 902, a high gain narrow beam antennas 906, and a telemetry and command antenna 908 which is aimed at a control ground station. The spacecraft 900 may also include one or more sensors 912 to measure the attitude of the spacecraft 900. These sensors may include sun sensors, earth sensors, and star sensors.

The spacecraft 900 has a power supply that may include an internal nuclear power supply and/or solar panels 904 that are used to collect solar energy. The solar panels 904 may be stowed or jettisoned prior to landing.

Since the solar panels are often referred to by the designations “North” and “South”, the solar panels in FIG. 9 are referred to by the numerals 904N and 904S for the “North” and “South” solar panels, respectively. The spacecraft may have a plurality of attitude control thrusters as well as landing thrusters 912, which are used when the spacecraft 900 is landing on a surface.

The three axes of the spacecraft 900 are shown in FIG. 9. The pitch axis P lies along the plane of the solar panels 940N and 940S. The roll axis R and yaw axis Y are perpendicular to the pitch axis P and lie in the directions and planes shown.

FIG. 10 is a diagram depicting the functional architecture of a representative spacecraft guidance and control system. Control of the spacecraft is provided by a computer or spacecraft control processor (SCP) 1002. The SCP performs a number of functions which may include post ejection sequencing, transfer orbit processing, acquisition control, station keeping control, normal mode control, mechanisms control, fault protection, and spacecraft systems support, landing control, and others.

Input to the spacecraft control processor 1002 may come from a any combination of a number of spacecraft components and subsystems, such as a transfer orbit sun sensor 1004, an acquisition sun sensor 1006, an inertial reference unit 1008, a transfer orbit sensor 1010, an operational orbit sensor 1012, a normal mode wide angle sun sensor 1014, a magnetometer 1016, and one or more star sensors 1018.

The SCP 1002 generates control signal commands 1020 which are directed to a command decoder unit 1022. The command decoder unit operates the load shedding and battery charging systems 1024. The command decoder unit also sends signals to the magnetic torque control unit (MTCU) 1026 and the torque coil 1028.

The SCP 1002 also sends control commands 1030 to the thruster valve driver unit 1032 which in turn controls the landing thrusters 912 and the attitude control thrusters 1036.

Wheel torque commands 1062 are generated by the SCP 1002 and are communicated to the wheel speed electronics 1038 and 1040. These effect changes in the wheel speeds for wheels in momentum wheel assemblies 1042 and 1044, respectively. The speed of the wheels is also measured and fed back to the SCP 1002 by feedback control signal 1064.

The spacecraft control processor also sends jackscrew drive signals 1066 to the momentum wheel assemblies 1043 and 1044. These signals control the operation of the jackscrews individually and thus the amount of tilt of the momentum wheels. The position of the jackscrews is then fed back through command signal 1068 to the spacecraft control processor. The signals 1068 are also sent to the telemetry encoder unit 1058 and in turn to the ground station 1060.

The spacecraft control processor also sends command signals 1054 to the telemetry encoder unit 1058 which in turn sends feedback signals 1056 to the SCP 1002. This feedback loop, as with the other feedback loops to the SCP 1002 described earlier, assist in the overall control of the spacecraft. The SCP 1002 communicates with the telemetry encoder unit 1058, which receives the signals from various spacecraft components and subsystems and then relays them to the ground station 1060.

The wheel drive electronics 1038, 1040 receive signals from the SCP 1002 and control the rotational speed of the momentum wheels. The jackscrew drive signals 1066 adjust the orientation of the angular momentum vector of the momentum wheels. This accommodates varying degrees of attitude steering agility and accommodates movement of the spacecraft as required.

The use of reaction wheels or equivalent internal torquers to control a momentum bias stabilized spacecraft allows inversion about yaw of the attitude at will without change to the attitude control. In this sense, the canting of the momentum wheel is entirely equivalent to the use of reaction wheels.

The SCP 1002 may include or have access to memory 1070, such as a random access memory (RAM). Generally, the SCP 1002 operates under control of an operating system 1072 stored in the memory 1070, and interfaces with the other system components to accept inputs and generate outputs, including commands. Applications running in the SCP 1002 access and manipulate data stored in the memory 1070. The spacecraft 900 may also comprise an external communication device such as a spacecraft link for communicating with other computers at, for example, a ground station. If necessary, operation instructions for new applications can be uploaded from ground stations.

In one embodiment, instructions implementing the operating system 1072, application programs, and other modules are tangibly embodied in a computer-readable medium, e.g., data storage device, which could include a RAM, EEPROM, or other memory device. Further, the operating system 1072 and the computer program are comprised of instructions which, when read and executed by the SCP 1002, causes the spacecraft processor 1002 to perform the steps necessary to implement and/or use the present invention. Computer program and/or operating instructions may also be tangibly embodied in memory 1070 and/or data communications devices (e.g. other devices in the spacecraft 900 or on the ground), thereby making a computer program product or article of manufacture according to the invention. As such, the terms “program storage device,” “article of manufacture” and “computer program product” as used herein are intended to encompass a computer program accessible from any computer readable device or media.

C. Ground Station Processing

FIG. 11 is a diagram illustrating an exemplary computer system 1100 that could be used to implement elements of the present invention at the ground station. The computer 1102 comprises a general purpose hardware processor 1104A and/or a special purpose hardware processor 1104B (hereinafter alternatively collectively referred to as processor 1104) and a memory 1106, such as random access memory (RAM). The computer 1102 may be coupled to other devices, including input/output (I/O) devices such as a keyboard 1114, a mouse device 1116 and a printer 1128.

In one embodiment, the computer 1102 operates by the general purpose processor 1104A performing instructions defined by the computer program 1110 under control of an operating system 1108. The computer program 1110 and/or the operating system 1108 may be stored in the memory 1106 and may interface with the user and/or other devices to accept input and commands and, based on such input and commands and the instructions defined by the computer program 1110 and operating system 1108 to provide output and results.

Output/results may be presented on the display 1122 or provided to another device for presentation or further processing or action. In one embodiment, the display 1122 comprises a liquid crystal display (LCD) having a plurality of separately addressable pixels formed by liquid crystals. Each pixel of the display 1122 changes to an opaque or translucent state to form a part of the image on the display in response to the data or information generated by the processor 1104 from the application of the instructions of the computer program 1110 and/or operating system 1108 to the input and commands. Other display 1122 types also include picture elements that change state in order to create the image presented on the display 1122. The image may be provided through a graphical user interface (GUI) module 1118A. Although the GUI module 1118A is depicted as a separate module, the instructions performing the GUI functions can be resident or distributed in the operating system 1108, the computer program 1110, or implemented with special purpose memory and processors.

Some or all of the operations performed by the computer 1102 according to the computer program 1110 instructions may be implemented in a special purpose processor 1104B. In this embodiment, some or all of the computer program 1110 instructions may be implemented via firmware instructions stored in a read only memory (ROM), a programmable read only memory (PROM) or flash memory within the special purpose processor 1104B or in memory 1106. The special purpose processor 1104B may also be hardwired through circuit design to perform some or all of the operations to implement the present invention. Further, the special purpose processor 1104B may be a hybrid processor, which includes dedicated circuitry for performing a subset of functions, and other circuits for performing more general functions such as responding to computer program instructions. In one embodiment, the special purpose processor is an application specific integrated circuit (ASIC).

The computer 1102 may also implement a compiler 1112 which allows an application program 1110 written in a programming language such as COBOL, C++, FORTRAN, or other language to be translated into processor 1104 readable code. After completion, the application or computer program 1110 accesses and manipulates data accepted from I/O devices and stored in the memory 1106 of the computer 1102 using the relationships and logic that was generated using the compiler 1112.

The computer 1102 also optionally comprises an external communication device such as a modem, spacecraft link, Ethernet card, or other device for accepting input from and providing output to other computers.

In one embodiment, instructions implementing the operating system 1108, the computer program 1110, and/or the compiler 1112 are tangibly embodied in a computer-readable medium, e.g., data storage device 1120, which could include one or more fixed or removable data storage devices, such as a zip drive, floppy disc drive 1124, hard drive, CD-ROM drive, tape drive, or a flash drive. Further, the operating system 1108 and the computer program 1110 are comprised of computer program instructions which, when accessed, read and executed by the computer 1102, causes the computer 1102 to perform the steps necessary to implement and/or use the present invention or to load the program of instructions into a memory, thus creating a special purpose data structure causing the computer to operate as a specially programmed computer executing the method steps described herein. Computer program 1110 and/or operating instructions may also be tangibly embodied in memory 1106 and/or data communications devices 1130, thereby making a computer program product or article of manufacture according to the invention. As such, the terms “article of manufacture,” “program storage device” and “computer program product” or “computer readable storage device” as used herein are intended to encompass a computer program accessible from any computer readable device or media.

Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the computer 1102.

REFERENCES

-   [1] Williams, D. R., “Mars Pathfinder Landing Site,”     http://nssdc.gsfc.nasa. gov/planetary/marsland html. -   [2] Knocke, P. C., Wawrzyniak, G. G., Kennedy, B. M., Desai, P. N.,     Parker, T. J., Golombek, M. P., Duxbury, T. C., and Kass, D. M.,     “Mars Exploration Rovers Landing Dispersion Analysis.” Proceedings     of the AIAA/AAS Astrodynamics Specialist Conference, 2004. -   [3] Acikmese, B. and Ploen, S. R., “Convex Programming Approach to     Powered Descent Guidance for Mars Landing,” AIAA Journal of     Guidance, Control and Dynamics, Vol. 30, No. 5; 2007, pp. 1353-1366. -   [4] Arvidson, R.: Adams, D., Bonfiglio, G., Christensen, P., Cull,     S., Golombek, M., Guinn, J., Guinness, E., Heet, T., Kirk, R.,     Knudson. A, Malin, M., Mellon, M., McEwen, A., Mushkin, A.,     Parker, T. Seelos, F., Seelos, K., Smith, P., Spencer, D., Stein;     T., and Tamppari, L., “Mars Exploration Program 2007 Phoenix landing     site selection and characteristics,”Journal of Geophysical Research,     Vol. 113, 2008. -   [5] Wolf, A. A., Tooley, J. Ploen, S., Ivanov, M., Acikmese, B. and     Gromov, K. “Performance Trades for Mars pinpoint landing,” IEEE     Aerospace Conference, 2006. -   [6] Meditch, J. S., “On the Problem of Optimal Thrust Programming     For a Lunar Soft Landing,” IEEE Transactions on Automatic Control,     Vol. AC-9, No. 4, 1964, pp. 477-484. -   [7] Miele, A., The Calculus of Variations in Applied Aero dynamics     and Flight Mechanics in Optimization Techniques (G. Leitmann, ed.),     Academic Press, New York. 1962. -   [8] Klumpp, A. R., “Apollo Lunar Descent Guidance.” Automatica, Vol.     10, 1974, pp. 133-146. -   [9] Topcu, U., Casoliva, J. and Mease, K., “Fuel Efficient Powered     Descent Guidance for Mars landing,” AIAA Guidance, Navigation, and     Control Conference, San Francisco, Calif., 2005. -   [10] Sostaric, R. and Rea, J., “Powered Descent Guidance Methods for     the Moon and Mars,” AIAA Guidance, Navigation, and Control     Conference, San Francisco, Calif., 2005. -   [11] Najson, F. and Mease, K., “A Computationally Non-expensive     Guidance Algorithm for Fuel Efficient Soft Landing,” AIAA Guidance,     Navigation, and Control Conference, San Francisco, Calif., 2005. -   [12] Steinfeldt, B., Grant, M., Matz, D., and Braun, R., “Guidance,     Navigation, and Control Technology System Trades for Mars Pinpoint     Landing,” Proceedings of the AIAA Guidance, Navigation and Control     Conference 2008, 2008. -   [13] Ye, Y. Interior Point Algorithms, John Wiley & Sons, Inc.,     1997. -   [14] Sturm, J. F., “Using SeDuMi 1.02, a MATLAB Toolbox for     Optimization Over Symmetric Cones,” Optimization Methods and     Software, Vol. 11. No. 1, 1999. pp. 625-653. -   [15] Sturm, J. F., “Implementation of Interior Point Methods for     Mixed Semidefinite and Second Order Cone Optimization Problems,”     Optimization Methods and Software, Vol. 17, No. 6, 2002, pp.     1105-1154. -   [16] D′Souza, C., “An Optimal Guidance Law for Planetary Landing,’”     Proceedings of the AIAA Guidance, Navigation and Control Conference     1997, 1997. -   [17] Ploen. S., Acikmese, B., and Wolf, A., “A Comparison of Powered     Descent Guidance Laws for Mars Pinpoint Landing,” AIAA Guidance,     Navigation, and Control Conference, Keystone, Colo., 2006. -   [18] Acikmese, B. and Blackmore, L., “On the Lossless Convexication     of the Minimum-Fuel Planetary Landing Problem,” Under Review.     Journal of Guidance, Control, and Dynamics, 2009. -   [19] Antsaklis, P. J. and Michel, A. N., A Linear Systems Primer,     Birkhauser, 2007. -   [20] Fahroo, F. and Ross, I. M., “Direct Trajectory Optimization by     a Chebyshev Pseudospectral Method,” Journal of Guidance, Control,     and Dynamics, Vol. 25, No. 1, 2002, pp. 160-166. -   [21] Vlassenbroeck, J. and Dooren, R. V., “A Chebyshev Technique for     Solving Nonlinear Optimal Control Problems,” IEEE Transactions on     Automatic Control, Vol. 33, No. 4, 1988, pp. 333-340. -   [22] Acikmese, B. and Ploen, S., “A Powered Descent Guidance     Algorithm for Mars Pinpoint Landing,” AIAA Guidance, Navigation, and     Control Conference, San Francisco, Calif., 2005. -   [23] Boyd, S. and Vandenberghe, L., Convex Optimization, Cambridge     University Press, 2004. -   [24] Vandenberghe, L. and Boyd, S., “Semidefinite Programming,” SIAM     Review. Vol. 38, No. 1. 1995, pp. 49-95. -   [25] Acikmese, B. Blackmore, L., Scharf, D. P., and Wolf, A.,     “Enhancements on the Convex Programming Based Powered Descent     Guidance Algorithm for Mars Landing,” Proceedings of the AIAA     Guidance, Navigation and Control Conference 2008, 2008. -   [26] Bertsekas, D. P., Nonlinear Programming, second edition, Athena     Scientific, 2000. 

1. A method of computing a thrust profile to land a spacecraft at or near a surface target, wherein the spacecraft is subject to a non-convex thrust constraint, comprising the steps of: computing a minimum landing error descent solution for the spacecraft subject to a convexified non-convex constraint, wherein the descent solution includes a landing error range; and determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution for the spacecraft subject to the convexified non-convex constraint.
 2. The method of claim 1, wherein the step of determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution subject to the convexified non-convex thrust constraint comprises the steps of: computing a minimum fuel descent solution for the spacecraft subject to the convexified non-convex constraint and the landing error range; and determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum fuel descent solution for the spacecraft subject to the convexified non-convex constraint.
 3. The method of claim 2, wherein the step of computing a minimum landing error descent solution for the spacecraft subject to the convexified non-convex thrust constraint comprises the steps of computing $\min\limits_{t_{f},{T_{c}{( \cdot )}},{\Gamma {( \cdot )}}}{{r\left( t_{f} \right)}}^{2}$ subject to the first set of constraints comprising the constraints of: {umlaut over (r)}(t)=g+T _(c)(t)/m(t), {dot over (m)}(t)=−αΓ(t) ∥T _(c)(t)∥≧Γ(t), 0<ρ₁≦Γ(t)≦ρ₂ r(t)∈X∀t∈└0^(,t) _(f)┘ m(0)=m _(wet) , m(t _(f))≧m _(dry) r(0)=r ₀ , {dot over (r)}(0)={dot over (r)} ₀ r(t _(f))^(T) e ₁=0, r(t _(f))=0 wherein r(t) is a position vector of the spacecraft as a function of flight time; {dot over (r)}(t) is a velocity vector of the spacecraft as a function of flight time; {umlaut over (r)}(t) is an acceleration vector of the spacecraft as a function of flight time; t is the time from beginning of powered landing; t(0) is the time at the beginning of powered landing t(f)=t_(f) is the time at the ending of powered landing; T_(c)(t) is a net thrust force vector acting on the spacecraft as a function of flight time; m(t) is a mass of the spacecraft as a function of flight time; {dot over (m)}(t) is a mass change of the spacecraft as a function of flight time; X is the set of feasible positions of the spacecraft; m(0) is the spacecraft mass at the beginning of the thrust profile; m(t_(f)) is the spacecraft mass at the end of the thrust profile; m_(dry) is the initial mass of the spacecraft without fuel; m_(wet) is the initial mass of the spacecraft with fuel; ${\alpha = \frac{1}{I_{sp}g_{e}\cos \; \varphi}},$ wherein I_(sp) is the specific impulse of the thruster, g_(e) is the earth's gravitational constant, T₁ and T₂ are the lower and upper limits of the thrust force that can be provided by each thruster; ρ₁=nT₁ cos φ is the minimum thrust value available from the thruster(s); ρ₂=nT₂ cos φ is the maximum thrust value available from the thrusters(s); e_(i) is a unit vector of all zeros except the i^(th) row, which is unity; and Γ(t)=slack variable that bounds thrust magnitude.
 4. The method of claim 3, wherein $\min\limits_{t_{f},{T_{c}{( \cdot )}},{\Gamma {( \cdot )}}}{{r\left( t_{f} \right)}}^{2}$ subject to the first set of constraints is computed as ${\min\limits_{N,\eta}{{Ey}_{N}}^{2}},$ subject to a second set of constraints comprising: E_(u)Y_(k)η ≤ e_(σ)^(T)Y_(k)η for  k = 0, …  , N ${{{{{\mu_{1}(t)}\begin{bmatrix} {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right) +} \\ \frac{\left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)^{2}}{2} \end{bmatrix}} \leq {e_{4}^{T}Y_{k}\eta} \leq {{{\mu_{2}(t)}\left\lbrack {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)} \right\rbrack}{Ey}_{k}}} \in {X\mspace{14mu} k}} = 1},\ldots \mspace{14mu},N$ Fy_(N) ≥ ln   m_(dry) y_(N)^(T)e₁ = 0, E_(v)y_(N)^(T) = 0 $y_{k} = {{\Phi_{k}\begin{bmatrix} r_{0} \\ {\overset{.}{r}}_{0} \\ {\ln \mspace{14mu} m_{wet}} \end{bmatrix}} + {\Lambda_{k}\begin{bmatrix} g \\ 0 \end{bmatrix}} + {\Psi_{k}\eta}}$ k = 1, …  , N wherein t_(k) = k Δ t, k = 0, …  , N ${\sigma (t)} = \frac{\Gamma (t)}{m(t)}$ ${u(t)} = \frac{T_{c}(t)}{m(t)}$ z(t) = ln   m(t) ${\eta = \begin{bmatrix} p_{0} \\ \vdots \\ p_{m} \end{bmatrix}},$ wherein p_(j) is a vector of parameters and p_(j)∈R⁴ E=[I _(3×3)0_(3×1) ], F=[0_(1×6)1], E _(u) =[I _(3×3)0_(3×1) ], E _(v)=[0_(3×3) I _(3×3)0_(3×1)] ${{Y_{k}\eta} = \begin{bmatrix} {u\left( t_{k} \right)} \\ {\sigma \left( t_{k} \right)} \end{bmatrix}},$ wherein u(t_(k))=is the control input, and ${\sigma \left( t_{k} \right)} = \frac{\Gamma \left( t_{k} \right)}{m\left( t_{k} \right)}$ μ₁(t)=ρ₁e^(−z) ⁰ , wherein z₀=a lower bound on ln m(t) μ₂(t)=ρe^(−z) ⁰ , wherein z₀=a lower bound on ln m(t) $y_{k} = \begin{bmatrix} {r\left( t_{k} \right)} \\ {\overset{.}{r}\left( t_{k} \right)} \\ {z\left( t_{k} \right)} \end{bmatrix}$ r(t_(k)) is r(t) t_(k) {dot over (r)}(t_(k)) is {dot over (r)}(t) at t_(k) z(t_(k)) is z(t) at t=t_(k) e₄ ^(T)=A transpose of a vector of all zeros except the fourth element, which is unity y_(N) ^(T)=A transpose of y_(k) at the final time step N Φ_(k), Λ_(k), Ψ_(k), Y_(k) are discrete time state transition matrices describing the solution to {umlaut over (r)}(t)=u(t)+g and $\begin{matrix} {\overset{.}{z} = \frac{\overset{.}{m}(t)}{m(t)}} \\ {= {- {{\alpha\sigma}(t)}}} \end{matrix}$ wherein g is the acceleration of gravity of the planet or object the spacecraft is landing on.
 5. An apparatus for computing a thrust profile to land a spacecraft at or near a surface target, wherein the spacecraft is subject to a non-convex thrust constraint, comprising the steps of: a spacecraft processor; a memory, communicatively coupled to the processor, the memory for storing instructions comprising instructions for computing a minimum landing error descent solution for the spacecraft subject to a convexified non-convex constraint, wherein the descent solution includes a landing error range; and instructions for determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution for the spacecraft subject to the convexified non-convex constraint; a thruster, communicatively coupled to the spacecraft processor, for maneuvering the spacecraft according to the determined thrust profile.
 6. The apparatus of claim 5, wherein the instructions for determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution subject to the convexified non-convex thrust constraint comprise: instructions for computing a minimum fuel descent solution for the spacecraft subject to the convexified non-convex constraint and the landing error range; and instructions for determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum fuel descent solution for the spacecraft subject to the convexified non-convex constraint.
 7. The apparatus of claim 6, wherein the instructions computing a minimum landing error descent solution for the spacecraft subject to the convexified non-convex thrust constraint comprises the instructions for computing $\min\limits_{t_{f},{T_{c}{( \cdot )}},{\Gamma {( \cdot )}}}{{r\left( t_{f} \right)}}^{2}$ subject to the first set of constraints comprising the constraints of: {umlaut over (r)}(t)=g+T _(c)(t)/m(t), {dot over (m)}(t)=−αΓ(t) ∥T _(c)(t)∥≦Γ(t), 0<ρ₁≦Γ(t)≦ρ₂ r(t)∈X∀t∈└0,t_(f)┘ m(0)=m _(wet) , m(t _(f))≧m _(dry) r(0)=r ₀ , {dot over (r)}(0)={dot over (r)} ₀ r(t _(f))^(T) e ₁=0, r(t _(f))=0 wherein r(t) is a position vector of the spacecraft as a function of flight time; {dot over (r)}(t) is a velocity vector of the spacecraft as a function of flight time; {umlaut over (r)}(t) is an acceleration vector of the spacecraft as a function of flight time; t is the time from beginning of powered landing; t(0) is the time at the beginning of powered landing t(f)=t_(f) is the time at the ending of powered landing; T_(c)(t) is a net thrust force vector acting on the spacecraft as a function of flight time; m(t) is a mass of the spacecraft as a function of flight time; {dot over (m)}(t) is a mass change of the spacecraft as a function of flight time; X is the set of feasible positions of the spacecraft; m(0) is the spacecraft mass at the beginning of the thrust profile; m(t_(f)) is the spacecraft mass at the end of the thrust profile; m_(dry) is the initial mass of the spacecraft without fuel; m_(wet) is the initial mass of the spacecraft with fuel; ${\alpha = \frac{1}{I_{sp}g_{e}\cos \; \varphi}},$ wherein I_(sp) is the specific impulse of the thruster, g_(e) is the earth's gravitational constant, T₁ and T₂ are the lower and upper limits of the thrust force that can be provided by each thruster; ρ₁=nT₁ cos φ is the minimum thrust value available from the thruster(s); ρ₂=nT₂ cos φ is the maximum thrust value available from the thrusters(s); e_(i) is a unit vector of all zeros except the i^(th) row, which is unity; and Γ(t)=slack variable that bounds thrust magnitude.
 8. The apparatus of claim 7, wherein $\min\limits_{t_{f},{T_{c}{( \cdot )}},{\Gamma {( \cdot )}}}{{r\left( t_{f} \right)}}^{2}$ subject to the first set of constraints is computed as ${\min\limits_{N,\eta}{{Ey}_{N}}^{2}},$ subject to a second set of constraints comprising:   E_(u)Y_(k)η ≤ e_(σ)^(T)Y_(k)η  for  k = 0, …  , N ${{\mu_{1}(t)}\begin{bmatrix} {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right) +} \\ \frac{\left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)^{2}}{2} \end{bmatrix}} \leq {e_{4}^{T}Y_{k}\eta} \leq {{\mu_{2}(t)}\left\lbrack {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)} \right\rbrack}$   Ey_(k) ∈ X    k = 1, … , N   Fy_(N) ≥ ln  m_(dry)   y_(N)^(T)e₁ = 0, E_(v)y_(N)^(T) = 0 $\mspace{20mu} {y_{k} = {{\Phi_{k}\begin{bmatrix} r_{0} \\ {\overset{.}{r}}_{0} \\ {\ln \; m_{wet}} \end{bmatrix}} + {\Lambda_{k}\begin{bmatrix} g \\ 0 \end{bmatrix}} + {\Psi_{k}\eta}}}$   k = 1, …  , N wherein t_(k) = k Δ t, k = 0, … , N ${\sigma (t)} = \frac{\Gamma (t)}{m(t)}$ ${u(t)} = \frac{T_{c}(t)}{m(t)}$ z(t) = ln  m(t) ${\eta = \begin{bmatrix} p_{0} \\ \vdots \\ p_{m} \end{bmatrix}},$ wherein p_(j) is a vector of parameters and p_(j)∈R⁴ E=[I _(3×3)0_(3×1) ], F=[0_(1×6)1], E _(u) =[I _(3×3)0_(3×1) ], E _(v)=[0_(3×3) I _(3×3)0_(3×1)] ${{Y_{k}\eta} = \begin{bmatrix} {u\left( t_{k} \right)} \\ {\sigma \left( t_{k} \right)} \end{bmatrix}},$ wherein u(t_(k))=is the control input, and ${\sigma \left( t_{k} \right)} = \frac{\Gamma \left( t_{k} \right)}{m\left( t_{k} \right)}$ μ₁(t)=ρ₁e^(−z) ⁰ , wherein z₀=constant μ₂(t)=ρe^(−z) ⁰ , wherein z₀=constant $y_{k} = \begin{bmatrix} {r\left( t_{k} \right)} \\ {\overset{.}{r}\left( t_{k} \right)} \\ {z\left( t_{k} \right)} \end{bmatrix}$ r(t_(k)) is r(t) t_(k) {dot over (r)}(t_(k)) is {dot over (r)}(t) at t_(k) z(t_(k)) is z(t) at t=t_(k) e₄ ^(T)=A transpose of a vector of all zeros except the fourth element, which is unity; y_(N) ^(T)=A transpose of y_(k) at the final time step N Φ_(k), Λ_(k), Ψ_(k), Y_(k) are discrete time state transition matrices describing the solution to {umlaut over (r)}(t)=u(t)+g and $\begin{matrix} {\overset{.}{z} = \frac{\overset{.}{m}(t)}{m(t)}} \\ {= {- {{\alpha\sigma}(t)}}} \end{matrix}$ wherein g is the acceleration of gravity of the planet or object the spacecraft is landing on.
 9. An apparatus for computing a thrust profile to land a spacecraft at or near a surface target, wherein the spacecraft is subject to a non-convex thrust constraint, comprising: means for computing a minimum landing error descent solution for the spacecraft subject to a convexified non-convex constraint, wherein the descent solution includes a landing error range; and means for determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution for the spacecraft subject to the convexified non-convex constraint.
 10. The apparatus of claim 9, wherein the means for determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum landing error descent solution subject to the convexified non-convex thrust constraint comprises: means for computing a minimum fuel descent solution for the spacecraft subject to the convexified non-convex constraint and the landing error range; and means for determining the thrust profile for the spacecraft subject to the non-convex constraint from the computed minimum fuel descent solution for the spacecraft subject to the convexified non-convex constraint.
 11. The apparatus of claim 10, wherein the means for computing a minimum landing error descent solution for the spacecraft subject to the convexified non-convex thrust constraint comprises means for computing $\min\limits_{t_{f},{T_{c}{( \cdot )}},{\Gamma {( \cdot )}}}{{r\left( t_{f} \right)}}^{2}$ subject to the first set of constraints comprising the constraints of: {umlaut over (r)}(t)=g+T _(c)(t)/m(t), {dot over (m)}(t)=−αΓ(t) ∥T _(c)(t)∥≦Γ(t), 0<ρ₁≦Γ(t)≦ρ₂ r(t)∈X∀t∈└0,t_(f)┘ m(0)=m _(wet) , m(t _(f))≧m _(dry) r(0)=r ₀ , {dot over (r)}(0)={dot over (r)} ₀ r(t _(f))^(T) e ₁=0, r(t _(f))=0 wherein r(t) is a position vector of the spacecraft as a function of flight time; {dot over (r)}(t) is a velocity vector of the spacecraft as a function of flight time; {umlaut over (r)}(t) is an acceleration vector of the spacecraft as a function of flight time; t is the flight time of the spacecraft t(0) is the time at the beginning of powered landing t(f)=t_(f) is the time at the ending of powered landing; T_(c)(t) is a net thrust force vector acting on the spacecraft as a function of flight time; m(t) is a mass of the spacecraft as a function of flight time; {dot over (m)}(t) is a mass change of the spacecraft as a function of flight time; X is the set of feasible positions of the spacecraft; m(0) is the spacecraft mass at the beginning of the thrust profile; m(t_(f)) is the spacecraft mass at the end of the thrust profile; m_(dry) is the initial mass of the spacecraft without fuel; m_(wet) is the initial mass of the spacecraft with fuel; ${\alpha = \frac{1}{I_{sp}g_{e}\cos \; \varphi}},$ wherein I_(sp) is the specific impulse of the thruster, g_(e) is the earth's gravitational constant, T₁ and T₂ are the lower and upper limits of the thrust force that can be provided by each thruster; ρ₁=nT₁ cos φ is the minimum thrust value available from the thruster(s); ρ₂=nT₂ cos φ is the maximum thrust value available from the thrusters(s); e_(i) is a unit vector of all zeros except the i^(th) row, which is unity; and Γ(t)=slack variable that bounds thrust magnitude.
 12. The method of claim 11, wherein $\min\limits_{t_{f},{T_{c}{( \cdot )}},{\Gamma {( \cdot )}}}{{r\left( t_{f} \right)}}^{2}$ subject to the first set of constraints is computed as ${\min\limits_{N,\eta}{{Ey}_{N}}^{2}},$ subject to a second set of constraints comprising: E_(u)Y_(k)η ≤ e_(σ)^(T)Y_(k)η  for  k = 0, …  , N ${{\mu_{1}(t)}\begin{bmatrix} {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right) +} \\ \frac{\left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)^{2}}{2} \end{bmatrix}} \leq \begin{matrix} {{e_{4}^{T}Y_{k}\eta} \leq {\mu_{2}(t)}} \\ \left\lbrack {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)} \right\rbrack \end{matrix}$ Ey_(k) ∈ X  k = 1, …  , N Fy_(N) ≥ ln  m_(dry) y_(N)^(T)e₁ = 0,  E_(v)y_(N)^(T) = 0 ${y_{k} = {{{\Phi_{k}\begin{bmatrix} r_{0} \\ {\overset{.}{r}}_{0} \\ {\ln \; m_{wet}} \end{bmatrix}} + {\Lambda_{k}\begin{bmatrix} g \\ 0 \end{bmatrix}} + {\Psi_{k}\eta \mspace{14mu} k}} = 1}},\ldots \mspace{14mu},N$ $\begin{matrix} {{e_{4}^{T}Y_{k}\eta} \leq {\mu_{2}(t)}} \\ \left\lbrack {1 - \left( {{Fy}_{k} - {z_{0}\left( t_{k} \right)}} \right)} \right\rbrack \end{matrix}$ wherein t_(k) = k Δ t,  k = 0, …  , N ${\sigma (t)} = \frac{\Gamma (t)}{m(t)}$ ${u(t)} = \frac{T_{c}(t)}{m(t)}$ z(t) = ln  m(t) $\eta = \begin{bmatrix} p_{0} \\ \vdots \\ p_{m} \end{bmatrix}$ wherein p_(j) is a vector of parameters and p_(j)∈R⁴ E=[I _(3×3)0_(3×1) ], F=[0_(1×6)1], E _(u) =[I _(3×3)0_(3×1) ], E _(v)=[0_(3×3) I _(3×3)0_(3×1)] ${{Y_{k}\eta} = \begin{bmatrix} {u\left( t_{k} \right)} \\ {\sigma \left( t_{k} \right)} \end{bmatrix}},$ wherein u(t_(k))=is the control input, and ${\sigma \left( t_{k} \right)} = \frac{\Gamma \left( t_{k} \right)}{m\left( t_{k} \right)}$ μ₁(t)=ρ₁e^(−z) ⁰ , wherein z₀=constant μ₂(t)=ρe^(−z) ⁰ , wherein z₀=constant $y_{k} = \begin{bmatrix} {r\left( t_{k} \right)} \\ {\overset{.}{r}\left( t_{k} \right)} \\ {z\left( t_{k} \right)} \end{bmatrix}$ r(t_(k)) is r(t) t_(k) {dot over (r)}(t_(k)) is {dot over (r)}(t) at t_(k) z(t_(k)) is z(t) at t=t_(k) e₄ ^(T)=A transpose of a vector of all zeros except the fourth element, which is unity y_(N) ^(T)=A transpose of y_(k) at the final time step N Φ_(k), Λ_(k), Ψ_(k), Y_(k) are discrete time state transition matrices describing the solution to {umlaut over (r)}(t)=u(t)+g and $\overset{.}{z} = {\frac{\overset{.}{m}(t)}{m(t)} = {- {{\alpha\sigma}(t)}}}$ wherein g is the acceleration of gravity of the planet or object the spacecraft is landing on. 